package entities;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Transient;

import dto.ItemMateriaPrimaRodamientoDTO;
import dto.RodamientoDTO;

@Entity
public class Rodamiento implements Serializable {
	
		
	private static final long serialVersionUID = 1L;
	@Id
	private String codigoRodamiento;
	private String caracteristica;
	private String origen;
	private String marca;
	private String tipo;
	private String cod_propietario;
	private float precio;
	@Transient
	private Proveedor proveedor;
	@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
	private List<ItemMateriaPrimaRodamiento> listaMateriasPrima;
	
public Rodamiento() {
	// TODO Auto-generated constructor stub
}	
	
	public Rodamiento(RodamientoDTO r ) {
		super();
		this.codigoRodamiento = r.getCodigoRodamiento();
		this.caracteristica = r.getCaracteristica();
		this.origen = r.getOrigen();
		this.marca = r.getMarca();
		this.tipo = r.getTipo();
		this.cod_propietario = r.getCod_propietario();
		this.precio = r.getPrecio();
		this.listaMateriasPrima = new ArrayList<ItemMateriaPrimaRodamiento>();
		for (ItemMateriaPrimaRodamientoDTO itemMateriaPrimaDTO : r.getListaMateriasPrima()) {
			ItemMateriaPrimaRodamiento itemMateriaPrimaRodamiento = new ItemMateriaPrimaRodamiento();
			MateriaPrima matPrim = new MateriaPrima(itemMateriaPrimaDTO.getMateriaPrima());
			itemMateriaPrimaRodamiento.setMateriaPrima(matPrim);
			itemMateriaPrimaRodamiento.setCantidad(itemMateriaPrimaDTO.getCantidad());
			itemMateriaPrimaRodamiento.setIdItemMateriaPrimaRodamiento(itemMateriaPrimaDTO.getIdItemMateriaPrimaRodamiento());
			listaMateriasPrima.add(itemMateriaPrimaRodamiento);
		}
		
	}
	
	public String getCodigoRodamiento() {
		return codigoRodamiento;
	}
	public void setCodigoRodamiento(String codigoRodamiento) {
		this.codigoRodamiento = codigoRodamiento;
	}
	public String getCaracteristica() {
		return caracteristica;
	}
	public void setCaracteristica(String caracteristica) {
		this.caracteristica = caracteristica;
	}
	public String getOrigen() {
		return origen;
	}
	public void setOrigen(String origen) {
		this.origen = origen;
	}
	public String getMarca() {
		return marca;
	}
	public void setMarca(String marca) {
		this.marca = marca;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public String getCod_propietario() {
		return cod_propietario;
	}
	public void setCod_propietario(String cod_propietario) {
		this.cod_propietario = cod_propietario;
	}
	public float getPrecio() {
		return precio;
	}
	public void setPrecio(float precio) {
		this.precio = precio;
	}
	public Proveedor getProveedor() {
		return proveedor;
	}
	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}
	public List<ItemMateriaPrimaRodamiento> getListaMateriasPrima() {
		return listaMateriasPrima;
	}
	public void setListaMateriasPrima(
			List<ItemMateriaPrimaRodamiento> listaMateriasPrima) {
		this.listaMateriasPrima = listaMateriasPrima;
	}

}
